//
//  TopTabControl.h
//  TopTabControl
//
//  Created by wqh on 15-5-7.
//  Copyright (c) 2015年 Wqh. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "TopTabControlDefine.h"
#import "TopTabMenuItem.h"
#import "TopTabPage.h"

@class TopTabControl;

@protocol TopTabControlDataSource <NSObject>

@optional
/**
 *  得到顶部菜单栏的高度
 *
 */
- (CGFloat)TopTabHeight:(TopTabControl *)tabCtrl;

/**
 *  得到顶部菜单栏的宽度
 *
 */
- (CGFloat)TopTabWidth:(TopTabControl *)tabCtrl;

/**
 *  /
 *
 *  @param NSInteger <#NSInteger description#>
 *
 *  @return 顶部菜单栏的x左边
 */
- (CGFloat)TopTabX:(TopTabControl *)tabCtrl;

/**
 *  得到顶部菜单的个数
 *
 *
 *  @return 返回菜单的个数
 */
- (NSInteger)TopTabMenuCount:(TopTabControl *)tabCtrl;

/**
 *  得到第几个菜单的view
 *
 *  @param index   菜单的index，从0开始
 *
 *  @return 返回单个菜单项
 */
- (TopTabMenuItem *)TopTabControl:(TopTabControl *)tabCtrl
                      itemAtIndex:(NSUInteger)index;
/**
 *  得到第几个菜单对应的page内容
 *
 *  @param index   菜单的index，从0开始
 *
 *  @return 返回单个菜单页
 */
- (TopTabPage *)TopTabControl:(TopTabControl *)tabCtrl
                  pageAtIndex:(NSUInteger)index;

@end


@interface TopTabControl : UIView

@property (nonatomic,weak) id<TopTabControlDataSource> datasource;//数据源
@property (nonatomic,assign) NSInteger pageIndex;//页码
@property (nonatomic,assign) BOOL showIndicatorView;//是否显示指示器

/**
 *  初始化方法
 *
 *  @param frame 整个控件的大小
 *
 *  @return tab控件
 */
- (instancetype)initWithFrame:(CGRect)frame;

/**
 *  重新刷新数据，类似UItableView的重新刷新数据
 */
- (void)reloadData;

/**
 *  展示第几页，从0开始
 *
 *  @param pageIndex 第几页
 */
- (void)displayPageAtIndex:(NSUInteger)pageIndex;



@end
